package NiuKe;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 某比赛已经进入了淘汰赛阶段,已知共有n名选手参与了此阶段比赛，
 * 他们的得分分别是a_1,a_2….a_n,小美作为比赛的裁判希望设定一个分数线m，
 * 使得所有分数大于m的选手晋级，其他人淘汰。
 *但是为了保护粉丝脆弱的心脏，小美希望晋级和淘汰的人数均在[x,y]之间。
 *显然这个m有可能是不存在的，也有可能存在多个m，如果不存在，请你输出-1，
 * 如果存在多个，请你输出符合条件的最低的分数线。
 */
public class EliminationScore {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();
        int min = scanner.nextInt();
        int max = scanner.nextInt();
        int[] scores = new int[n];
        for (int i = 0; i < n; i++) {
            scores[i] = scanner.nextInt();
        }
        System.out.println(solution(scores,min,max));
//        int[] ints = {6,5,4,3,2,1};
//        int[] temp = new int[ints.length];
//        merge(ints,0,ints.length-1,temp);
//        for (int anInt : ints) {
//            System.out.println(anInt);
//        }
    }

    public static int solution(int[] scores,int min,int max){
        // 对分数进行排序
//        Arrays.sort(scores);
        int[] temp = new int[scores.length];
        merge(scores,0,scores.length-1,temp);
        
        // 淘汰人数i，晋级人数 scores.length - i
        for (int i = min; i <= max; i++) {
            int rise = scores.length - i;
            // 判断淘汰人数是否符合规则
            if(min <= rise && rise <= max){
                return scores[i - 1];
            }
        }
        return -1;
    }
    public static void merge(int[] array,int left,int right,int[] temp){
//        System.out.println(left+":"+right);
        if(left == right){
            return;
        }
        int mid = (left + right) / 2;
        merge(array, left, mid,temp);
        merge(array, mid + 1, right,temp);
        
        for (int i = left; i <= right; i++) {
            temp[i] = array[i];
        }
        int n = left;
        int m = mid + 1;
        for (int i = left; i <= right; i++) {
            if(n == mid + 1){
                array[i] = temp[m];
                m++;
            } else if (m == right + 1){
                array[i] = temp[n];
                n++;
            }else if(temp[n] <= temp[m]){
                array[i] = temp[n];
                n++;
            }else{
                array[i] = temp[m];
                m++;
            }
        }
    }
}
